package xyz.funnyboy.gulimall.coupon.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.*;
import xyz.funnyboy.common.utils.PageUtils;
import xyz.funnyboy.common.utils.R;
import xyz.funnyboy.gulimall.coupon.entity.CouponEntity;
import xyz.funnyboy.gulimall.coupon.service.CouponService;

import java.util.Arrays;
import java.util.Map;

/**
 * 优惠券信息
 *
 * @author VectorX
 * @email uxiahnan@outlook.com
 * @date 2024-01-29 10:00:18
 */
@RefreshScope // 动态修改配置
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
        @Autowired
        private CouponService couponService;

        // @Value("${coupon.user.name}")//从application.properties中获取//不要写user.name，他是环境里的变量
        // private String name;
        // @Value("${coupon.user.age}")
        // private Integer age;

        // @RequestMapping("/test")
        // public R test() {

        // return R
        // .ok()
        // .put("name", name)
        // .put("age", age);
        // }

        @RequestMapping("/member/list")
        public R membercoupons() { // 全系统的所有返回都返回R
                // 应该去数据库查用户对于的优惠券，但这个我们简化了，不去数据库查了，构造了一个优惠券给他返回
                CouponEntity couponEntity = new CouponEntity();
                couponEntity.setCouponName("满100-10");// 优惠券的名字
                return R
                                .ok()
                                .put("coupons", Arrays.asList(couponEntity));
        }

        /**
         * 列表
         */
        @RequestMapping("/list")
        // @RequiresPermissions("coupon:coupon:list")
        public R list(
                        @RequestParam Map<String, Object> params) {
                PageUtils page = couponService.queryPage(params);

                return R
                                .ok()
                                .put("page", page);
        }

        /**
         * 信息
         */
        @RequestMapping("/info/{id}")
        // @RequiresPermissions("coupon:coupon:info")
        public R info(
                        @PathVariable("id") Long id) {
                CouponEntity coupon = couponService.getById(id);

                return R
                                .ok()
                                .put("coupon", coupon);
        }

        /**
         * 保存
         */
        @RequestMapping("/save")
        // @RequiresPermissions("coupon:coupon:save")
        public R save(
                        @RequestBody CouponEntity coupon) {
                couponService.save(coupon);

                return R.ok();
        }

        /**
         * 修改
         */
        @RequestMapping("/update")
        // @RequiresPermissions("coupon:coupon:update")
        public R update(
                        @RequestBody CouponEntity coupon) {
                couponService.updateById(coupon);

                return R.ok();
        }

        /**
         * 删除
         */
        @RequestMapping("/delete")
        // @RequiresPermissions("coupon:coupon:delete")
        public R delete(
                        @RequestBody Long[] ids) {
                couponService.removeByIds(Arrays.asList(ids));

                return R.ok();
        }

}
